feat(packaging): migrate source into workspace package directories [PYSDK-135]#656
Open
ari-nz wants to merge 1 commit into
Open
feat(packaging): migrate source into workspace package directories [PYSDK-135]#656ari-nz wants to merge 1 commit into
ari-nz wants to merge 1 commit into
Conversation
- platform/ and utils/ → packages/aignostics-sdk/src/aignostics_sdk/ - application/, wsi/, dataset/, bucket/, qupath/, notebook/, gui/, system/, third_party/, cli.py → packages/aignostics/src/aignostics/ - constants.py split: INTERNAL_ORGS → aignostics-sdk/constants.py; remaining constants → aignostics/constants.py - Created symlink packages/aignostics-sdk/src/aignx → codegen/out/aignx to bundle codegen into slim wheel - Updated packages/aignostics-sdk/pyproject.toml: packages = ["src/aignostics_sdk", "src/aignx"] - Updated packages/aignostics-sdk/src/aignostics_sdk/__init__.py with real module docstring - Moved packages/aignostics/src/aignostics/__init__.py from src/aignostics/ (preserving full content) Note: imports are intentionally broken at this stage. Import rewrites (aignostics.* → aignostics_sdk.* for slim-module consumers) are deferred to PYSDK-136.
There was a problem hiding this comment.
Pull request overview
This PR advances the workspace package split by relocating source from the legacy src/aignostics/ layout into the new full aignostics and slim aignostics-sdk package directories. It also updates the slim package wheel configuration to include the generated aignx client package.
Changes:
- Moves full-package domain modules, GUI assets, scripts, and constants into
packages/aignostics/src/aignostics/. - Moves platform/client utilities into
packages/aignostics-sdk/src/aignostics_sdk/. - Updates
aignostics-sdkwheel packaging to include bothaignostics_sdkandaignx.
Reviewed changes
Copilot reviewed 6 out of 145 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
src/aignostics/__init__.py |
Removes legacy package initializer from old source tree. |
packages/aignostics/src/aignostics/__init__.py |
Restores full package boot initializer in new package location. |
packages/aignostics/src/aignostics/constants.py |
Adds full-package constants in new location. |
packages/aignostics/src/aignostics/cli.py |
Adds full-package CLI entry module. |
packages/aignostics/src/aignostics/application/__init__.py |
Adds application package exports. |
packages/aignostics/src/aignostics/application/_models.py |
Adds application progress models. |
packages/aignostics/src/aignostics/application/_settings.py |
Adds application settings. |
packages/aignostics/src/aignostics/application/_gui/_page_builder.py |
Adds application GUI route registration. |
packages/aignostics/src/aignostics/application/_gui/_page_index.py |
Adds application homepage GUI. |
packages/aignostics/src/aignostics/application/_gui/_utils.py |
Adds application GUI display helpers. |
packages/aignostics/src/aignostics/application/_gui/assets/* |
Moves application GUI image and animation assets. |
packages/aignostics/src/aignostics/bucket/__init__.py |
Adds bucket package exports. |
packages/aignostics/src/aignostics/bucket/_settings.py |
Adds bucket settings. |
packages/aignostics/src/aignostics/bucket/assets/Google-Cloud-logo.png |
Moves bucket GUI asset. |
packages/aignostics/src/aignostics/dataset/__init__.py |
Adds dataset package exports. |
packages/aignostics/src/aignostics/gui/__init__.py |
Adds GUI package exports. |
packages/aignostics/src/aignostics/gui/_error.py |
Adds GUI error page handling. |
packages/aignostics/src/aignostics/gui/_theme.py |
Adds GUI theme setup. |
packages/aignostics/src/aignostics/gui/CLAUDE.md |
Moves GUI module guidance. |
packages/aignostics/src/aignostics/notebook/__init__.py |
Adds notebook package exports. |
packages/aignostics/src/aignostics/notebook/_gui.py |
Adds notebook GUI page. |
packages/aignostics/src/aignostics/notebook/_notebook.py |
Adds bundled Marimo notebook. |
packages/aignostics/src/aignostics/qupath/__init__.py |
Adds QuPath package exports. |
packages/aignostics/src/aignostics/qupath/_gui.py |
Adds QuPath GUI page. |
packages/aignostics/src/aignostics/qupath/_settings.py |
Adds QuPath settings. |
packages/aignostics/src/aignostics/qupath/assets/* |
Moves QuPath GUI animation assets. |
packages/aignostics/src/aignostics/qupath/scripts/*.groovy |
Moves QuPath helper scripts. |
packages/aignostics/src/aignostics/system/__init__.py |
Adds system package exports. |
packages/aignostics/src/aignostics/system/_exceptions.py |
Adds system exception type. |
packages/aignostics/src/aignostics/system/_gui.py |
Adds system GUI page. |
packages/aignostics/src/aignostics/system/_settings.py |
Adds system settings. |
packages/aignostics/src/aignostics/system/assets/system.lottie |
Moves system GUI asset. |
packages/aignostics/src/aignostics/third_party/showinfm/** |
Moves vendored file-manager helper package. |
packages/aignostics/src/aignostics/wsi/__init__.py |
Adds WSI package exports. |
packages/aignostics/src/aignostics/wsi/_cli.py |
Adds WSI CLI commands. |
packages/aignostics/src/aignostics/wsi/_gui.py |
Adds WSI thumbnail/TIFF routes. |
packages/aignostics/src/aignostics/wsi/_service.py |
Adds WSI service implementation. |
packages/aignostics-sdk/pyproject.toml |
Updates slim wheel packages to include aignx. |
packages/aignostics-sdk/src/aignostics_sdk/__init__.py |
Updates slim package initializer. |
packages/aignostics-sdk/src/aignostics_sdk/constants.py |
Adds slim package constants. |
packages/aignostics-sdk/src/aignostics_sdk/platform/__init__.py |
Adds platform package exports. |
packages/aignostics-sdk/src/aignostics_sdk/platform/_api.py |
Adds authenticated API wrapper. |
packages/aignostics-sdk/src/aignostics_sdk/platform/_cli.py |
Adds platform CLI commands. |
packages/aignostics-sdk/src/aignostics_sdk/platform/_constants.py |
Adds platform constants. |
packages/aignostics-sdk/src/aignostics_sdk/platform/_messages.py |
Adds platform messages. |
packages/aignostics-sdk/src/aignostics_sdk/platform/_operation_cache.py |
Adds platform operation cache utilities. |
packages/aignostics-sdk/src/aignostics_sdk/platform/_utils.py |
Adds platform utility functions. |
packages/aignostics-sdk/src/aignostics_sdk/platform/resources/__init__.py |
Adds platform resources package marker. |
packages/aignostics-sdk/src/aignostics_sdk/platform/resources/utils.py |
Adds platform pagination helper. |
packages/aignostics-sdk/src/aignostics_sdk/utils/__init__.py |
Adds slim utility package exports. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_cli.py |
Adds CLI utility helpers. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_console.py |
Adds shared console setup. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_constants.py |
Adds runtime constants. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_di.py |
Adds discovery helpers. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_fs.py |
Adds filesystem helpers. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_health.py |
Adds health models. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_log.py |
Adds logging setup. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_mcp.py |
Adds MCP helpers. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_nav.py |
Adds GUI navigation helpers. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_notebook.py |
Adds notebook server helpers. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_process.py |
Adds process helpers. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_service.py |
Adds base service class. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_settings.py |
Adds settings utilities. |
packages/aignostics-sdk/src/aignostics_sdk/utils/_user_agent.py |
Adds user-agent helper. |
packages/aignostics-sdk/src/aignostics_sdk/utils/boot.py |
Adds boot sequence. |
|
|
||
| [tool.hatch.build.targets.wheel] | ||
| packages = ["src/aignostics_sdk"] | ||
| packages = ["src/aignostics_sdk", "src/aignx"] |
This was referenced May 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release Train — PYSDK-133
Summary
Physically moves all source files from
src/aignostics/into their new workspace package homes. Implements PYSDK-135 (Phase 2 of theaignostics-sdkslim-package split).Note: imports are intentionally broken after this PR. Import rewrites (
aignostics.*→aignostics_sdk.*for slim-module consumers) are deferred to PYSDK-136.What moved where
→
packages/aignostics-sdk/src/aignostics_sdk/(slim package)src/aignostics/platform/→packages/aignostics-sdk/src/aignostics_sdk/platform/src/aignostics/utils/→packages/aignostics-sdk/src/aignostics_sdk/utils/INTERNAL_ORGSconstant extracted fromsrc/aignostics/constants.py→packages/aignostics-sdk/src/aignostics_sdk/constants.pypackages/aignostics-sdk/src/aignostics_sdk/__init__.pystub replaced with real module docstring→
packages/aignostics/src/aignostics/(full package)src/aignostics/application/→packages/aignostics/src/aignostics/application/src/aignostics/wsi/→packages/aignostics/src/aignostics/wsi/src/aignostics/dataset/→packages/aignostics/src/aignostics/dataset/src/aignostics/bucket/→packages/aignostics/src/aignostics/bucket/src/aignostics/qupath/→packages/aignostics/src/aignostics/qupath/src/aignostics/notebook/→packages/aignostics/src/aignostics/notebook/src/aignostics/gui/→packages/aignostics/src/aignostics/gui/src/aignostics/system/→packages/aignostics/src/aignostics/system/src/aignostics/third_party/→packages/aignostics/src/aignostics/third_party/src/aignostics/cli.py→packages/aignostics/src/aignostics/cli.pysrc/aignostics/constants.py(full) →packages/aignostics/src/aignostics/constants.pysrc/aignostics/__init__.py→packages/aignostics/src/aignostics/__init__.py(replaces Phase 1 stub)Codegen bundling fix
PYSDK-134 left a TODO about bundling
codegen/out/aignxinto the slim wheel (hatchling cannot reference paths outside the project root). Fixed by:packages/aignostics-sdk/src/aignx→../../../codegen/out/aignxpackages/aignostics-sdk/pyproject.toml:packages = ["src/aignostics_sdk", "src/aignx"]Validation
uv sync --all-extrascompletes successfullyfind src/ -name "*.py" | grep -v __pycache__ | grep -v codegenreturns onlysrc/aignostics.py(the PyInstaller launcher)ls packages/aignostics-sdk/src/aignx/codegen/shows codegen API filesJira
PYSDK-135
Test plan
uv sync --all-extrassucceedsls packages/aignostics-sdk/src/aignostics_sdk/showsplatform/,utils/,constants.py,__init__.pyls packages/aignostics/src/aignostics/shows all domain modulesls packages/aignostics-sdk/src/aignx/codegen/resolves through the symlinksrc/aignostics/location (exceptsrc/aignostics.pyPyInstaller launcher)